home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Atari Mega Archive 2
/
Atari Mega Archive CD - Volume 2.iso
/
8bit
/
cislib_a
/
midas2.act
< prev
next >
Wrap
Text File
|
1995-04-22
|
8KB
|
1 lines
; CHECKSUM DATA¢;[EC 61 1B 36 B8 1C C8 1E¢; 4C 34 CD 5E 3C 82 2A 56¢; DF 77 62 ED 61 C7 5A 14¢; 20 C1 6C 4F E9 2C D1 EB¢; 6C 95 E1 84 AF 0B 1A 88¢; 3B EE ]¢¢¢PROC STICK(BYTE PN)¢ VARSET(4)¢ IF ST(0)<>15 THEN¢ ATRACT=0¢ IF SAX(4)=0 THEN¢ STIK=ST(0) & 1¢ IF STIK = 0 THEN¢ DIR(4)=0¢ FI¢ STIK=ST(0) & 2¢ IF STIK=0 THEN¢ DIR(4)=1¢ FI¢ FI¢ IF SAY(4)=0 THEN¢ STIK=ST(0) & 8¢ IF STIK=0 THEN¢ DIR(4)=3¢ FI¢ STIK=ST(0) & 4¢ IF STIK=0 THEN¢ DIR(4)=2¢ FI¢ FI¢ FI¢ CHCH(4)¢ IF DDM=1 AND PN=4 THEN¢ LOOK()¢ FI¢RETURN¢¢¢PROC CHCOL()¢ BYTE COP¢ COL=0¢ FOR COP=0 TO 3 DO¢ IF MPL(COP)>0 THEN COL=MPL(COP) FI¢ OD¢ HITCLR=0¢RETURN¢¢PROC GR4()¢ GRAPHICS(0) DLIST=PEEKC(560)¢ POKE(752,1) PRINT(" ")¢ DLIST(3)=66¢ FOR LP0=6 TO 28 DO¢ DLIST(LP0)=4¢ OD¢ FOR LP0=0 TO 40 DO¢ Y40(LP0)=LP0*40¢ OD¢ FOR LP0=0 TO 12 DO¢ T8M(LP0)=LP0*8¢ OD¢ FOR LP0=0 TO 4 DO¢ T3M(LP0)=LP0*3¢ OD¢RETURN¢¢¢PROC CHSETUP()¢ P106=PEEK(106)-12 CHSET=P106*256¢ RAMTOP=P106 GR4() CHBAS=P106¢ MOVEBLOCK(CHSET,57344,1024)¢ FOR CLP0=0 TO 288-1 DO¢ POKE((CHSET+520)+CLP0,CHST(CLP0))¢ OD¢ SCR=PEEKC(88)¢RETURN¢¢¢PROC PM_SET()¢ SDMCTL=62¢ GRPRIOR=1+16¢ GRACTL=3¢ FOR LP0=0 TO 3 DO¢ SIZEP(LP0)=0¢ OD¢ PMBASE=P106+4 PMTEMP=(P106+4)*256¢ M0=PMTEMP+768 PL0=M0+256¢ PL1=PL0+256 PL2=PL1+256 PL3=PL2+256¢ PAD(0)=PL0 PAD(1)=PL1¢ PAD(2)=PL2 PAD(3)=PL3¢ PCOLR(0)=0*16+10¢ PCOLR(1)=12*16+5¢ PCOLR(2)=8*16+4¢ PCOLR(3)=4*16+4¢ ZERO(PMTEMP,2048)¢RETURN¢¢¢PROC PAUSE()¢ POSITION(33,0) PRINT("PAUSED")¢ FOR LP0=0TO 7 DO¢ AUDFC(LP0)=0¢ OD¢ CH=255¢ DO¢ UNTIL CH<255 OD¢ CH=255¢ POSITION(33,0) PRINT(" ")¢RETURN¢¢PROC MIRROR()¢ BYTE SC¢ FOR LP0=0 TO 19 DO¢ FOR LP1=0 TO 23 DO¢ SC=SCR(LP0+Y40(LP1))¢ IF SC=78 OR SC=80 THEN SC==+1¢ ELSEIF¢ SC=79 OR SC=81 THEN SC==-1¢ FI¢ IF SC=67 THEN SC==+1¢ ELSEIF SC=68 THEN SC==-1¢ FI¢ IF SC=83 THEN SC==+1¢ ELSEIF SC=84 THEN SC==-1¢ FI¢ SCR((39-LP0)+Y40(LP1))=SC¢ OD¢ OD¢RETURN¢¢PROC BOARDS()¢ IC=70 LP0=0¢ P0X=PRL(LP0)¢ WHILE P0X<40 DO¢ P0Y=PRL(LP0+1)¢ P1X=PRL(LP0+2) P1Y=PRL(LP0+3)¢ PL(P0X,P0Y) DR(P1X,P1Y) LP0==+4¢ P0X=PRL(LP0)¢ OD¢ IC=73 LP0=0 P0X=PUD(LP0)¢ WHILE P0X<40 DO¢ P0Y=PUD(LP0+1)¢ P1X=PUD(LP0+2) P1Y=PUD(LP0+3)¢ PL(P0X,P0Y) DR(P1X,P1Y) LP0==+4¢ P0X=PUD(LP0)¢ OD¢ IC=69 PL(12,9)¢ IC=98¢ FOR LP0=0 TO 2 DO¢ PL(LP0,1) DR(LP0,10)¢ PL(LP0,14) DR(LP0,23)¢ OD¢ PL(0,12) DR(2,12) PL(19,8) DR(19,10)¢ PL(10,8) PL(10,10) PL(12,14) IC=85¢ FOR LP0=0 TO 4 STEP 2 DO¢ P0X=DOOR(LP0) P0Y=DOOR(LP0+1)¢ PL(P0X,P0Y)¢ OD¢ IC=84¢ FOR LP0=4 TO 15 STEP 2 DO¢ P0X=DOOR(LP0) P0Y=DOOR(LP0+1)¢ IC=83 PL(P0X,P0Y)¢ IC=84 PL(P0X+1,P0Y)¢ OD¢ MIRROR()¢ FOR LP0=0 TO 10 DO¢ R=RAND(15)¢ PCOLR(6)=R*16+8¢ FOR CLP0=0 TO 3500 DO OD¢ OD¢ FOR LP0=0 TO 11 STEP 2 DO¢ P0X=ENER(LP0) P0Y=ENER(LP0+1)¢ IC=86+INE PL(P0X,P0Y)¢ IC=87+INE PL(P0X+1,P0Y)¢ OD¢ FOR LP0=0 TO 15 STEP 2 DO¢ P0X=KEYS(LP0) P0Y=KEYS(LP0+1)¢ IC=96 PL(P0X,P0Y)¢ IC=97 PL(P0X+1,P0Y)¢ OD¢ FOR CLP0=40 TO 959 DO¢ TS0=SCR(CLP0) TS1=SCR(CLP0+1)¢ IF TS0=0 AND TS1=0 THEN¢ SCR(CLP0)=193 SCR(CLP0+1)=194¢ GC==+1¢ FI¢ OD¢RETURN¢¢¢PROC TITLE()¢ XTRA=3 OSCOR=0 SSC=5 COL=0 INE=0¢ FOR LP0=0 TO 7 DO¢ HPOSP(LP0)=0¢ OD¢ DELAY=700¢ RAMTOP=MEM¢ GRAPHICS(1)¢ SETCOLOR(4,0,0) SETCOLOR(0,8,3)¢ SETCOLOR(1,2,8)¢ DLIST=PEEKC(560) DLIST(10)=7¢ DLIST(11)=7¢ POKE(752,1)¢ SCR=PEEKC(88)¢ PRSCOR()¢ POSITION(5,5) PRINTD (6,"לחגIJצ")¢ POSITION(9,6) PRINTD(6,"לIJםד")¢ POSITION(2,14)¢ PRINTDE(6," pressáהחפדáor")¢ PRINTD(6," צקIJפקátoáסכIJך") PUTE()¢ PRINT(" by Ken Miller")¢ SNDRST()¢ DO¢ FOR LP0=0 TO 1 DO¢ TS0=COL¢ DO¢ WSYNC=0 PFCOLR2=TS0 TS0==+1¢ UNTIL VCOUNT=128 OD¢ OD¢ COL==-1¢ UNTIL CONSOL=6 OR STRIG0=0 OD¢ COL=0 TS0=0¢ ZERO(SCOR,8) PRSCOR()¢ CHSETUP()¢ PM_SET()¢ HITCLR=0¢RETURN¢¢PROC START()¢ BYTE R¢ DO¢ SNDRST()¢ GC=0 GG=0¢ FOR LP0=0 TO 3 DO¢ STX(LP0)=124 STY(LP0)=96¢ OD¢ STX(4)=124 STY(4)=160 BRPO(1)=0¢ ZERO(SCR,959) BOARDS()¢ FOR LP0=0 TO XTRA-1 DO¢ SCR(21+LP0)=82¢ OD¢ ZERO(M0,1279)¢ SETCOLOR(0,0,14) SETCOLOR(1,8,10)¢ SETCOLOR(2,3,5) SETCOLOR(3,2,8)¢ SETCOLOR(4,0,0)¢ DIR(4)=2 SP=2¢ FOR LP0=0 TO 4 DO¢ SPIN(LP0)=0 EDF(LP0)=0 PDF(LP0)=0¢ SPT(LP0)=0 SPN(LP0)=0¢ OD¢ DO¢ IF CH<255 THEN PAUSE() FI¢ IF SCOR(3)>OSCOR THEN¢ OSCOR=SCOR(3) XTRA==+1¢ SCR(21+(XTRA-1))=82¢ FI¢ IF SCOR(3)=0 THEN OSCOR=0 FI¢ IF ST0>0 THEN¢ AUDFC(0)=ST0 AUDFC(1)=32+1¢ ST0==-1¢ ELSE AUDFC(1)=0¢ FI¢ IF ST2>0 THEN¢ AUDFC(2)=10+ST2¢ AUDFC(3)=128+64+2¢ ST2==-1¢ ELSE AUDFC(3)=0¢ FI¢ IF ST3>0 THEN¢ AUDFC(4)=12+ST3 AUDFC(5)=64+32+2¢ ST3==-1¢ ELSE AUDFC(5)=0¢ FI¢ IF GC=GG THEN DELAY==-25¢ IF DELAY<10 OR DELAY>700¢ THEN DELAY=10¢ FI¢ INE==+2¢ IF INE>8 THEN INE=0 FI¢ THO==+1¢ IF THO>5 THEN THO=1 FI¢ START()¢ FI¢ IF GG=75 THEN¢ IC=99 PL(19,10)¢ IC=100 PL(20,10)¢ MBT=350¢ FI¢ IF MBT>0 THEN MBT==-1 FI¢ IF MBT=1 THEN¢ IC=98 PL(19,10)¢ PL(20,10)¢ FI¢ CHCOL()¢ IF PT=0 THEN ESC=2 FI¢ IF COL>0 THEN¢ IF COL=8 THEN COL=3¢ ELSE¢ COL== RSH 1¢ FI¢ IF DIR(4)>1 THEN PDF(4)=1¢ ELSE PDF(4)=0¢ FI¢ IF DIR(COL)>1 THEN PDF(COL)=1¢ ELSE¢ PDF(COL)=0¢ FI¢ IF POWER>0 OR PT>0 THEN¢ IF EDF(COL)=0 THEN EDF(COL)=80¢ IF EDF(COL)=80 THEN¢ FOR ELP=1 TO ESC DO¢ HUND(1)¢ OD¢ ESC==+1¢ FI¢ IF ESC>16 THEN ESC=8 FI¢ FI¢ ELSEIF PDF(4)=PDF(COL)¢ AND EDF(COL)=0 THEN¢ ZERO(M0,1279) PMM=0¢ FOR LP0=0 TO 3 DO¢ STX(LP0)=124 STY(LP0)=96¢ OD¢ SNDRST()¢ FOR CLP0=0 TO 500 DO¢ SPT(4)==+1¢ IF SPT(4)>SPN(4) RSH 3 THEN¢ SPT(4)=0 SPN(4)==+6¢ IF SPN(4)>250 THEN SPN(4)=0 FI¢ SPIN(4)==+1¢ IF SPIN(4)>3 THEN SPIN(4)=0 FI¢ FI¢ PMST(M0,P0,SPIN(4))¢ PM_GO(STX(4),STY(4),PMM)¢ AUDFC(6)=SPIN(4) LSH 4¢ AUDFC(7)=2¢ FOR LP0=0 TO 200 DO OD¢ OD¢ AUDFC(6)=0 AUDFC(7)=0 SPT(4)=0¢ SPN(4)=0 ZERO(M0,255) DIR(4)=2¢ STX(4)=124 STY(4)=160 COL=0¢ PMST(M0,P0,DIR(4))¢ PM_GO(STX(4),STY(4),PMM)¢ FOR CLP0=0 TO 40000 DO OD¢ SCR(21+(XTRA-1))=0 XTRA==-1¢ IF XTRA=0 THEN TITLE() START()¢ FI¢ FI¢ FI¢ COL=0¢ IF POWER>0 THEN POWER==-1¢ FOR LP0=0 TO 3 DO¢ PCOLR(LP0)=2*16+6¢ OD¢ ELSEIF PT>0 THEN PT==-1 PD==-1¢ FOR LP0=0 TO 3 DO¢ PCOLR(LP0)=2*16+6¢ OD¢ IF PD>200 THEN PD=5¢ PCOLR(0)=0*16+10¢ PCOLR(1)=12*16+5¢ PCOLR(2)=8*16+4 PCOLR(3)=4*16+4¢ FI¢ FI¢ FOR LP0=0 TO 3 DO¢ IF EDF(LP0)=0 THEN¢ EMBR(LP0)¢ PMST(PAD(LP0),EP,DIR(LP0))¢ PM_GO(STX(LP0),STY(LP0),PMM)¢ ELSE¢ EDF(LP0)==-1 SPT(LP0)==+1¢ IF EDF(LP0)>2 THEN¢ IF SPT(LP0)>SPN(LP0) THEN¢ SPT(LP0)=0 SPN(LP0)==+1¢ IF SPN(LP0)>15 THEN¢ SPN(LP0)=0¢ FI¢ SPIN(LP0)==+1¢ IF SPIN(LP0)>3 THEN¢ SPIN(LP0)=0¢ FI¢ SES=SPNA(SPIN(LP0))¢ PMST(PAD(LP0),EP,SES)¢ PM_GO(STX(LP0),STY(LP0),PMM)¢ AUDFC(4)=SPIN(LP0) AUDFC(5)=4¢ ELSEIF EDF(LP0)>2 AND¢ EDF(LP0)<5 THEN¢ AUDFC(6)=0 AUDFC(7)=0¢ SPT(LP0)=0 SPN(LP0)=0¢ ZERO(PAD(LP0),255) DIR(LP0)=1¢ STX(LP0)=124 STY(LP0)=96¢ EMBR(LP0)¢ PMST(PAD(LP0),EP,DIR(LP0))¢ PM_GO(STX(LP0),STY(LP0),PMM)¢ EDF(LP0)=0¢ FI¢ FI¢ FI¢ OD¢ STICK(4)¢ PMST(M0,P0,DIR(4))¢ PM_GO(STX(4),STY(4),PMM)¢ PMM==+1¢ IF PMM>2 THEN PMM=0 FI¢ FOR CLP0=0 TO DELAY DO OD¢ UNTIL CONSOL=6 OD¢ TITLE()¢ OD¢RETURN¢¢PROC MAIN()¢ ZERO(SCOR,8)¢ MEM=RAMTOP¢ TITLE() START()¢RETURN¢¢rrrrrrrrrrrrrr